package cn.wen.javax.crypto;

/**
 * Title：加密器（接口）
 * <p>
 * Description：提供加密处理。
 * <p>
 * Copyright：Copyright (c) 2010-2012
 * 
 * @author <a href="mailto:ct_wen@qq.com">ctwen</a>, 温承瑭
 * @version Revision：1.0 Date：2012/7/13 Description：初完成。
 *          <p>
 */
public interface Encryptable {

    /**
     * 使用缺省的密钥将明文加密为暗文。
     * 
     * @param src 明文
     * @param key 密匙
     * @return 暗文
     * @throws Exception
     */
    String encrypt(String src) throws Exception;

    /**
     * 根据指定的密匙将明文加密为暗文。
     * 
     * @param src 明文
     * @param key 密匙
     * @return 暗文
     * @throws Exception
     */
    String encrypt(String src, String key) throws Exception;

    /**
     * 根据指定的密匙将明文加密为暗文。
     * 
     * @param src 明文
     * @param key 密匙
     * @return 暗文
     * @throws Exception
     */
    String encrypt(String src, byte[] key) throws Exception;

    /**
     * 使用缺省的密钥将明文加密为暗文。
     * 
     * @param src 明文
     * @param key 密匙
     * @return 暗文
     * @throws Exception
     */
    byte[] encrypt(byte[] src) throws Exception;

    /**
     * 根据指定的密匙将明文加密为暗文。
     * 
     * @param src 明文
     * @param key 密匙
     * @return 暗文
     * @throws Exception
     */
    byte[] encrypt(byte[] src, byte[] key) throws Exception;
    
}
